﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;
using System.Threading;

namespace GUI
{
    public partial class usSoGioNang : UserControl
    {
        public usSoGioNang()
        {
            InitializeComponent();
        }
        DataTable dtkhuvuc;
        private void TrangThai(bool status)
        {
            //Trạng Thái số giờ nắng
            tsThem.Enabled = status;
          
            tshuy.Enabled = !status;

        }
        private void usSoGioNang_Load(object sender, EventArgs e)
        {
            HienThiKhuVuc();
            TrangThai(true);
        }

        private void HienThiKhuVuc()
        {
            KhuVucBUS kvBus = new KhuVucBUS();
            dtkhuvuc = kvBus.LoadKhuVuc();
            gvKhuVuc.DataSource = dtkhuvuc;
            SetupDataGridView(gvKhuVuc);
        }

        private void tsThem_Click(object sender, EventArgs e)
        {
            TrangThai(false);
            pnThongTin.Visible = true;
            txtKV.Focus();
            btnSua.Visible = false;
            btnThem.Visible = true;
        }

        private bool KiemTrarong()
        {
            if (txtKV.Text == "" | txtSoGioNang.Text == "")
            {
                MessageBox.Show("Nhập Đầy Đủ Thông Tin Các Trường!", "Thông Báo!");
                return true;
            }
            return false;
        }
        private void btnThem_Click(object sender, EventArgs e)
        {
            try
            {
                if (!KiemTrarong())
                {
                    string _tenkv = txtKV.Text;
                    float _nang = float.Parse(txtSoGioNang.Text);
                    KhuVucDTO kv = new KhuVucDTO();
                    kv.TENKV = _tenkv;
                    kv.SOGIONANG = _nang;
                    KhuVucBUS kvBus = new KhuVucBUS();
                    kvBus.ThemKhuVuc(kv);
                    HienThiKhuVuc();
                    reset();
                    txtKV.Focus();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Sai Cứu Pháp!!");
            }
        }
        float gio = 12;
        private void txtSoGioNang_Leave(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtSoGioNang.Text))
            {
                if (float.Parse(txtSoGioNang.Text) > gio)
                {
                    MessageBox.Show("Số Giờ Nắng Trong Ngày Không Thể Lớn Hơn 12!", "Thông Báo!");
                    txtSoGioNang.Focus();
                }
            }
                
        }

        private void txt_KeyPress(object sender, KeyPressEventArgs e)
        {
            //if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) && e.KeyChar != ',')
            //    e.Handled = true;


     
            string decimalString = Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator;
            char decimalChar = Convert.ToChar(decimalString);
            TextBox a = sender as TextBox;
            if (Char.IsDigit(e.KeyChar) || Char.IsControl(e.KeyChar)) { }
            else if (e.KeyChar == decimalChar && a.Text.IndexOf(decimalString) == -1)
            { }
            else
            {
                e.Handled = true;
            }
        }
        private void btnSua_Click(object sender, EventArgs e)
        {
            try
            {
                if (!KiemTrarong())
                {
                    Sua();
                    txtKV.Focus();
                    btnSua.Visible = false;
                    btnThem.Visible = true;
                }
            }

            catch (Exception)
            {
                MessageBox.Show("Sai Cứu Pháp!!");
            }
            
        }

        private void SetupDataGridView(DataGridView gv)
        {
            DataGridViewCellStyle style = gv.ColumnHeadersDefaultCellStyle;
            style.BackColor = Color.Navy;
            style.ForeColor = Color.White;
            style.Font = new Font(gv.Font, FontStyle.Bold);


            gv.GridColor = Color.Blue;  //' Màu các của lưới
            gv.BackgroundColor = Color.AliceBlue; //' Màu nền gridview
            gv.ForeColor = Color.Green; //' Màu chữ
            //' Thiết lập màu chữ cho những dòng có chỉ số lẻ
            gv.AlternatingRowsDefaultCellStyle.ForeColor = Color.Purple;
        }
        int MaLoai_Sua;
        
        float GioHienTai;
        private void gvKhuVuc_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            
            int rowIndex = e.RowIndex;
            if (rowIndex >= 0)
            {
                btnThem.Visible = false;
                btnSua.Visible = true;
                pnThongTin.Visible = true;

                DataGridViewRow row = gvKhuVuc.Rows[rowIndex];
                MaLoai_Sua = int.Parse(row.Cells["maKhuVuc"].Value.ToString());
                strTenKV = row.Cells["tenKhuVuc"].Value.ToString().Trim();
                GioHienTai = float.Parse(row.Cells["soGioNang"].Value.ToString().Trim());
                txtSoGioNang.Text = row.Cells["soGioNang"].Value.ToString().Trim();
                txtKV.Text = row.Cells["tenKhuVuc"].Value.ToString().Trim();
            }
        }

        private void reset()
        {
            txtSoGioNang.Text = "";
            txtKV.Text = "";
        }
        private void Sua()
        {
            KhuVucDTO kvCapNhatDto = new KhuVucDTO();
            kvCapNhatDto.MA_KV = MaLoai_Sua;
            kvCapNhatDto.TENKV = txtKV.Text.Trim();
            kvCapNhatDto.SOGIONANG = float.Parse(txtSoGioNang.Text.Trim());
            KhuVucBUS kvCapNhatBus = new KhuVucBUS();
            kvCapNhatBus.SuaKhuVuc(kvCapNhatDto);
            HienThiKhuVuc();
            reset();
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            reset();
            pnThongTin.Visible = false;
            TrangThai(true);
        }

        private void tshuy_Click(object sender, EventArgs e)
        {
            TrangThai(true);
            pnThongTin.Visible = false;
        }

        private void gvKhuVuc_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                if (MessageBox.Show("Bạn có chắc muốn xóa Khu Vực "+gvKhuVuc.CurrentRow.Cells["tenKhuVuc"].Value.ToString()+" !", "Thông Báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {

                    KhuVucBUS _kvBus = new KhuVucBUS();
                    int sTT = int.Parse(gvKhuVuc.CurrentRow.Cells["maKhuVuc"].Value.ToString());

                    _kvBus.XoaKhuVuc(sTT);
                    HienThiKhuVuc();


                }
            }
        }
        string strTenKV = "";
        private void txtKV_Leave(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtKV.Text))
            {
                if (txtKV.Text.ToLower() != strTenKV.ToLower())
                {
                    KhuVucDTO _kv = new KhuVucDTO();
                    _kv.TENKV = txtKV.Text;
                    KhuVucBUS _kvBUS = new KhuVucBUS();
                    int dt = _kvBUS.KT_TheoTenKhuVuc(_kv);
                    if (dt == 1)
                    {
                        txtKV.Text = strTenKV;
                        MessageBox.Show("Khu Vực Đã Tồn Tại, Bạn Có Thể Cập Nhật Lại Khuu Vực", "Thông Báo!");
                        txtKV.Focus();
                    }
                }

            }
        }


    }
}
